package com.niubi.yygh.common.exception;

import com.niubi.yygh.common.result.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 统一异常处理类
 * @author 牛俊杰
 */
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

	//处理所有异常
	@ExceptionHandler(Exception.class)
	@ResponseBody
	public R error(Exception e){
		System.out.println("全局---------");
		e.printStackTrace();
		return R.error().message("执行异常处理");
	}

	//处理特定异常
	@ExceptionHandler(ArithmeticException.class)
	@ResponseBody
	public R error(ArithmeticException e){
		System.out.println("特定--------------");
		e.printStackTrace();
		return R.error().message("执行特定异常");
	}

	//处理自定义常
	@ExceptionHandler(YyghException.class)
	@ResponseBody
	public R error(YyghException e){
		System.out.println("自定义--------------");
		e.printStackTrace();
		log.error("写入内容");
		return R.error().code(e.getCode()).message(e.getMsg());
	}
}